package org.zfes.snowier.zbss.xzy.biz.solution.service;
import java.util.List;
import java.util.Map;
import java.util.Optional;

import org.apache.ibatis.annotations.Param;
import org.zfes.snowier.core.data.DataSet;
import org.zfes.snowier.core.data.SelectVo;
import org.zfes.snowier.zbss.xzy.biz.solution.model.Algorithm;
import org.zfes.snowier.zbss.xzy.biz.solution.model.SolutionAlgorithm;
public interface ISolutionAlgorithmService{

	 List<SolutionAlgorithm> loadBySolutionId(Long id,Byte status);
	 Optional<SolutionAlgorithm> loadSolutionAlgorithmById(Long id);
	 List<Algorithm> loadAlgorithmsSolutionBinded(Long solutionId);
	 
	 void bindAlgorithm(Long solutionId , List<Long> algorithmIds);

	 void unBindAlgorithm(Long solutionId, List<Long> algorithmIds);
	
	 void setSolutionAlgorithms(Long solutionId , List<Long> algorithmIds);
	 
	 void createSolutionAlgorithm(SolutionAlgorithm solutionAlgorithm);
	
	 void deleteSolutionAlgorithm(Long id);
	
	 DataSet loadSolutionAlgorithmDataSet(Map<String, Object> params);
	 

 	void setSolutionAlgorithmStatus(Long id, Byte status);
 	

    Optional<Long> loadCountSolutionId(Long solutionId,Byte status);

	List<SelectVo> loadSolutionAlgorithmSelectVo(Long solutionId);
	
	
	Map<Long,Integer> loadSolAlgCount();
	
}